const jwt = require("jsonwebtoken");


const DEFAULT_SECRET = "my_secret_key"; // 生产环境请改为更安全的密钥并从环境变量读取
const DEFAULT_EXPIRES = 3600 * 27 * 7;

async function authenticate(User, username, password) {
  if (!username || !password) return null;
  // 使用 lean() 返回普通对象，避免返回 Mongoose 文档（可选）
  return await User.findOne({ username, password }).lean();
}

function generateToken(payload, secret = DEFAULT_SECRET, expiresIn = DEFAULT_EXPIRES) {
  return jwt.sign(payload, secret, { expiresIn });
}

module.exports = {
  authenticate,
  generateToken,
};